查看原文
其他

Stata: AIC,BIC,MSE,MAE 等信息准则的计算

Stata连享会 Stata连享会 2020-02-10

作者:贺旭

Stata 连享会:知乎 | 简书 | 码云 | CSDN

2019暑期“实证研究方法与经典论文”专题班

特别说明

文中包含的链接在微信中无法生效。请点击本文底部左下角的【阅读原文】,转入本文【简书版】

本篇推文将介绍 AIC,BIC 等信息准则以及在 Stata 中的相关命令。

1 信息准则

该小节将介绍 AIC , BIC 等信息准则以及在 Stata 中的相关命令

1.1 简介

经常的,在建模过程中,会有一些备选解释变量,选择不同的变量组合会得到不同的模型,而信息准则就是刻画这些模型相对于 “ 真实模型 ” 的信息损失。AIC, BIC, HQIC 等信息准则的计算公式为:

赤池信息量 (akaike information criterion):

AIC=-2 ln(L) + 2 k 

贝叶斯信息量 (bayesian information criterion):

BIC=-2 ln(L) + ln(n)*k 

汉南 - 奎因信息量 (quinn criterion):

HQ=-2 ln(L) + ln(ln(n))*k

其中 : L 是该模型下的最大似然,n 是数据数量,k 是模型的变量个数。

在模型拟合时,增加参数可使得似然概率增大,但是却引入了额外的变量,因此 AIC 和 BIC 都在目标式中添加了模型参数个数的惩罚项,也就是第二项。当 n≥8 时, ln(n)*k≥2k,所以,BIC 相比 AIC 在大数据量时对模型参数惩罚得更多,导致 BIC 更倾向于选择参数少的简单模型。

1.2 信息准则的Stata命令

在估计完模型后用,用命令 estat ic 来获得模型的 AIC,BIC , 例如 :

  1. . sysuse auto ///载入数据

  2. . regress price headroom trunk length mpg ///利用数据估计模型

  3. . estat ic ///获得模型地AIC和BIC

结果为

  1. Akaike's information criterion and Bayesian information criterion


  2. -----------------------------------------------------------------------------

  3. Model | Obs ll(null) ll(model) df AIC BIC

  4. -------------+---------------------------------------------------------------

  5. . | 74 -695.7129 -685.0518 5 1380.104 1391.624

  6. -----------------------------------------------------------------------------

2 回归评价指标

该小节将介绍 MSE、MAE、MAPE、R2、Adjusted R2 等回归评价指标以及在 Stata 中的相关命令。

2.1 简介

MSE、MAE、MAPE、R2、Adjusted R2 等指标用来表示回归模型拟合数据的精确程度。以下是各个指标的具体公式:

均方误差 MSE(Mean Square Error):

平均绝对误差 MAE(Mean Absolute Error):

平均绝对百分比误差 MAPE(Mean Absolute Percentage Error):

决定系数 R2(R-Square):

校正决定系数 adj-R2(Adjusted R-Square):

其中:为解释变量, 为拟合值

MSE、MAE、MAPE 与 R2 、Adjusted R2 都可以描述模型拟合的精确程度,但 R2和 Adjusted R2,大致可以分为一类。因为 R2 范围为 0 到 1,给了所有模型一个相同的比较标准,Adjusted R2 有可能小于 0,但也大致在 0 到 1 这个范围内。而 MSE、MAE、MAPE 的值与数据有关,范围没有限制。

2.2 回归评价指标的Stata命令

我们继续用 Stata 自带的 auto 数据来做演示。

(一) R2 和 Adjusted R2 的计算:

  1. . sysuse auto ///载入数据

  2. . regress price headroom trunk length mpg ///利用数据估计模型 ,R2 和 Adjusted R2也在结果中显示了///

结果为:

  1. Source | SS df MS Number of obs = 74

  2. -------------+---------------------------------- F(4, 69) = 5.76

  3. Model | 158982705 4 39745676.1 Prob > F = 0.0005

  4. Residual | 476082692 69 6899749.15 R-squared = 0.2503

  5. -------------+---------------------------------- Adj R-squared = 0.2069

  6. Total | 635065396 73 8699525.97 Root MSE = 2626.7


  7. ------------------------------------------------------------------------------

  8. price | Coef. Std. Err. t P>|t| [95% Conf. Interval]

  9. -------------+----------------------------------------------------------------

  10. headroom | -680.2898 486.0063 -1.40 0.166 -1649.846 289.2663

  11. trunk | 80.9094 119.8176 0.68 0.502 -158.1201 319.9389

  12. length | 23.28608 27.02926 0.86 0.392 -30.63583 77.20798

  13. mpg | -173.9507 87.75118 -1.98 0.051 -349.0095 1.108165

  14. _cons | 6416.948 6036.935 1.06 0.292 -5626.407 18460.3

  15. ------------------------------------------------------------------------------

(二) MSE 的计算:

  1. . sysuse auto ///载入数据

  2. . regress price headroom trunk length mpg ///利用数据估计模型 ///

  3. . predict e,xb ///获得模型拟合值保存为变量 e

  4. . gen mse=(price-e)*(price-e) ///计算并创建变量 mse

  5. . sum mse//得到结果栏中mean那一列为MSE

结果为:

  1. Variable | Obs Mean Std. Dev. Min Max

  2. -------------+---------------------------------------------------------

  3. mse | 74 6433550 1.26e+07 2230.343 8.80e+07


(三) MAE 的计算:

  1. . sysuse auto ///载入数据

  2. . regress price headroom trunk length mpg ///利用数据估计模型 ///

  3. . predict e,xb ///获得模型拟合值保存为变量 e

  4. . gen mae=abs(price-e) ///计算并创建变量 mae

  5. . sum mae//mae的均值即为结果,也就是结果栏中mean那一列的值

结果为:

  1. Variable | Obs Mean Std. Dev. Min Max

  2. -------------+---------------------------------------------------------

  3. mae | 74 1958.684 1622.555 47.22651 9380.703

(四) MAPE 的计算:

  1. . sysuse auto ///载入数据

  2. . regress price headroom trunk length mpg ///利用数据估计模型 ///

  3. . predict e,xb ///获得模型拟合值保存为变量 e

  4. . gen mape=abs(price-e)/price ///计算并创建变量 mae

  5. . sum mape///mape的均值即为结果,也就是结果栏中mean那一列的值

结果为:

  1. Variable | Obs Mean Std. Dev. Min Max

  2. -------------+---------------------------------------------------------

  3. mape | 74 .3138812 .1892069 .0060338 .9669298

参考资料

[1][模型选择的几种方法:AIC,BIC,HQ准则](https://blog.csdn.net/xianlingmao/article/details/7891277) 

[2][理解赤池信息量(AIC),贝叶斯信息量(BIC)](https://blog.csdn.net/CHIERYU/article/details/51746554) 

[3][STATA计算AIC、BIC、MSE、MAE、MAPE值](https://blog.csdn.net/sinat_37346717/article/details/82195134)

关于我们

  • Stata 连享会(公众号:StataChina)】由中山大学连玉君老师团队创办,旨在定期与大家分享 Stata 应用的各种经验和技巧。

  • 公众号推文同步发布于 CSDN-Stata连享会 、简书-Stata连享会 和 知乎-连玉君Stata专栏。可以在上述网站中搜索关键词StataStata连享会后关注我们。

  • 点击推文底部【阅读原文】可以查看推文中的链接并下载相关资料。

  • Stata连享会 精彩推文1  || 精彩推文2

联系我们

  • 欢迎赐稿: 欢迎将您的文章或笔记投稿至Stata连享会(公众号: StataChina),我们会保留您的署名;录用稿件达五篇以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。

  • 意见和资料: 欢迎您的宝贵意见,您也可以来信索取推文中提及的程序和数据。

  • 招募英才: 欢迎加入我们的团队,一起学习 Stata。合作编辑或撰写稿件五篇以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。

  • 联系邮件: StataChina@163.com

往期精彩推文



欢迎加入Stata连享会(公众号: StataChina)

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存